// 需要一个token，令牌（用于验证身份信息的）
// nodejs里面可以使用 jsonwebtoken的插件
// 生成token的时机应该是在用户登录以后(账号和密码都正确以后)

var express = require('express');
var router = express.Router();
const mongoose = require('mongoose');
// 引入jwt，用于生成token
const jwt = require("jsonwebtoken");

const adminSchema = mongoose.Schema({
  username: String,
  password: String,
});

const Admins = mongoose.model('admins', adminSchema);

router.post("/login", async (req, res) => {
  const {username, password} = req.body;

  if (!username || !password) {
    res.json({
      success: false,
      msg: "参数错误"
    })
  } else {
    const doc = await Admins.findOne({username: username});
    if (doc) {
      if (doc.password === password) {
        // 在这里生成token
        // 里面需要传入三个参数
        // 第一个参数是跟用户的身份相关的信息
        // 第二个参数是密钥
        // 第三个参数用于设置有效时长
        const token = jwt.sign({username, password}, "it231", {expiresIn: "3d"});
        // console.log(token); // eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6ImFkbWluIiwicGFzc3dvcmQiOiIxMjM0NTYiLCJpYXQiOjE3NjA2Njk5NzAsImV4cCI6MTc2MDY3NzE3MH0.n9SOMPxTFnUlY7EigibfCwmp-WpbTOMwah6NCKGZyro
        

        res.json({
          success: true,
          msg: "登录成功",
          token: token
        })
      } else {
        res.json({
          success: false,
          msg: "密码错误"
        })
      }
    } else {
      res.json({
        success: false,
        msg: "该用户不存在"
      })
    }
    
    
  }
})

module.exports = router;
